using System;
using System.Data;
using System.ComponentModel;
using System.Reflection;
using System.Collections.Generic;

namespace VSSAHT.Transfer
{
	[Serializable]
	public class UserDTOBase : DTOBase
	{
		#region Reference property Members

		private RoleDTO _role = new RoleDTO();
		public RoleDTO Role
		{
			get
			{
				return _role;
			}
			set
			{
				if (_role != value)
				{
					_role = value;
				}
			}
		}

		#endregion

		#region Collection Members


		#endregion

		#region Property ModifiedBy

		private string _modifiedBy;

		/// <summary>
		///  Property ModifiedBy
		/// <summary>
		public string ModifiedBy
		{
			get
			{
				return _modifiedBy;
			}

			set
			{
				if (_modifiedBy != value)
				{
					this.OnModifiedByChanging(value);
					_modifiedBy = value;
					this.OnModifiedByChanged();
				}
			}
		}

		#endregion

		#region Property ModifiedDate

		private DateTime? _modifiedDate;

		/// <summary>
		///  Property ModifiedDate
		/// <summary>
		public DateTime? ModifiedDate
		{
			get
			{
				return _modifiedDate;
			}

			set
			{
				if (_modifiedDate != value)
				{
					this.OnModifiedDateChanging(value);
					_modifiedDate = value;
					this.OnModifiedDateChanged();
				}
			}
		}

		#endregion

		#region Property PasswordEncrypt

		private string _passwordEncrypt;

		/// <summary>
		///  Property PasswordEncrypt
		/// <summary>
		public string PasswordEncrypt
		{
			get
			{
				return _passwordEncrypt;
			}

			set
			{
				if (_passwordEncrypt != value)
				{
					this.OnPasswordEncryptChanging(value);
					_passwordEncrypt = value;
					this.OnPasswordEncryptChanged();
					OnChanged();
				}
			}
		}

		#endregion

		#region Property RoleID

		private Guid _roleID;

		/// <summary>
		///  Property RoleID
		/// <summary>
		public Guid RoleID
		{
			get
			{
				return _roleID;
			}

			set
			{
				if (_roleID != value)
				{
					this.OnRoleIDChanging(value);
					_roleID = value;
					this.OnRoleIDChanged();
					OnChanged();
				}
			}
		}

		#endregion

		#region Property RowVersion

		private string _rowVersion;

		/// <summary>
		///  Property RowVersion
		/// <summary>
		public string RowVersion
		{
			get
			{
				return _rowVersion;
			}

			set
			{
				if (_rowVersion != value)
				{
					this.OnRowVersionChanging(value);
					_rowVersion = value;
					this.OnRowVersionChanged();
					OnChanged();
				}
			}
		}

		#endregion

		#region Property UserID

		private Guid _userID;

		/// <summary>
		///  Property UserID
		/// <summary>
		public Guid UserID
		{
			get
			{
				return _userID;
			}

			set
			{
				if (_userID != value)
				{
					this.OnUserIDChanging(value);
					_userID = value;
					this.OnUserIDChanged();
					OnChanged();
				}
			}
		}

		#endregion

		#region Property Username

		private string _username;

		/// <summary>
		///  Property Username
		/// <summary>
		public string Username
		{
			get
			{
				return _username;
			}

			set
			{
				if (_username != value)
				{
					this.OnUsernameChanging(value);
					_username = value;
					this.OnUsernameChanged();
					OnChanged();
				}
			}
		}

		#endregion

		#region Extensibility Method Declarations

		protected virtual void OnModifiedByChanging(string modifiedBy) { }
		protected virtual void OnModifiedByChanged() { }
		protected virtual void OnModifiedDateChanging(DateTime? modifiedDate) { }
		protected virtual void OnModifiedDateChanged() { }
		protected virtual void OnPasswordEncryptChanging(string passwordEncrypt) { }
		protected virtual void OnPasswordEncryptChanged() { }
		protected virtual void OnRoleIDChanging(Guid roleID) { }
		protected virtual void OnRoleIDChanged() { }
		protected virtual void OnRowVersionChanging(string rowVersion) { }
		protected virtual void OnRowVersionChanged() { }
		protected virtual void OnUserIDChanging(Guid userID) { }
		protected virtual void OnUserIDChanged() { }
		protected virtual void OnUsernameChanging(string username) { }
		protected virtual void OnUsernameChanged() { }

		#endregion

	}
}
